package com.itjin.model.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 帖子列表查询参数
 */
@Data
@Schema(description = "帖子列表查询参数")
public class PostListQueryDTO {

    /**
     * 帖子类型（可选）
     */
    @Schema(description = "帖子类型，0-10之间的整数，不传则查询所有类型")
    private Integer type;

    /**
     * 排序类型
     * 0-按热度排序（默认）
     * 1-按最新时间排序
     * 2-按点赞数排序
     */
    @Schema(description = "排序类型：0-按热度排序（默认），1-按最新时间排序，2-按点赞数排序", example = "0")
    private Integer sortType = 0;

    /**
     * 验证参数合法性
     * @return 是否合法
     */
    public boolean isValid() {
        // 验证帖子类型
        if (type != null && (type < 0 || type > 10)) {
            return false;
        }
        // 验证排序类型
        if (sortType != null && (sortType < 0 || sortType > 2)) {
            return false;
        }
        return true;
    }
}
